A program executed by a computing-based system comprises a set of instructions that refer to one or more data elements. In particular the instructions tell the computing-based system (e.g. the processor of the computing-based system) which actions to perform on, or using, the data elements. The term “data element” is used herein to refer to a combination of bits or bytes that represent a separate item of information. Each data element is stored in an associated portion of memory.
In some computing-based systems, such as embedded systems, both the instructions and the data elements may be stored in core memory (a memory unit that is situated in close proximity to the processor) of the embedded system to allow quick access (e.g. one cycle access) to the instructions and data elements. The processor of the embedded system executes the stored instructions which cause the processor to access (e.g. write to, and read from) the data elements in the core memory.
In many clock cycles a processor executing such a program will need to access both instructions and data elements stored in the core memory. Accordingly, in many embedded systems the instructions are stored in a separate section of the core memory from the data elements so that both an instruction and a data element can be accessed in the same clock cycle.
The embodiments described below are provided by way of example only and are not limiting of implementations which solve any or all of the disadvantages of known embedded systems.